/**
 * Description:
 * Class Name:HelloArg
 * Date:2022/2/22 16:22
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第7章_Java基础类库._7_7_Java11改进的国际化与格式化._7_7_4_使用MessageFormat处理包含占位符的字符串;

import java.text.MessageFormat;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;

public class HelloArg {
    public static void main(String[] args){
        // 定义一个Locale变量
        Locale currentLocale = null;
        // 如果运行程序指定了两个参数，比如你自己运行java命令时往后面传入 en US 它就会以英文形式输出了
        if (args.length == 2){
            // 使用运行程序的两个参数构造Locale实例
            currentLocale = new Locale(args[0], args[1]);
        }
        else{
            // 否则直接使用系统默认的Locale
            currentLocale = Locale.getDefault(Locale.Category.FORMAT);
        }
        // 根据Locale加载语言资源
        var bundle = ResourceBundle.getBundle("myMess", currentLocale);
        // 取得已加载的语言资源文件中msg对应消息
        var msg = bundle.getString("msg");
        // 使用MessageFormat为带占位符的字符串传入参数
        System.out.println(MessageFormat.format(msg, "yeeku", new Date()));
    }
}
